package cn.shop.admin.mapper;

import cn.shop.admin.entity.backRoleModule.BackRole;
import cn.shop.admin.req.AssignRoleReq;
import cn.shop.base.MyBaseMapper;

import java.util.List;

/**
 * 角色表(BackRole)表数据库访问层
 *
 * @author jzw
 * @since 2021-11-17 11:00:28
 */
public interface BackRoleMapper extends MyBaseMapper<BackRole> {

	/**
	 * 获取用户关联的角色
	 *
	 * @param id 用户id
	 * @return
	 * @author jy
	 * @since 2022/1/17 15:19
	 */
	List<Long> getRoleByUserId(Long id);

	/**
	 * 分配角色
	 *
	 * @param assignRoleReq
	 * @return
	 * @author jzw
	 * @since 2021/11/17 14:01
	 */
	int assignRole(AssignRoleReq assignRoleReq);

	/**
	 * 通过用户id移除 用户和角色之间的关系
	 *
	 * @param userId 用户id
	 * @return 影响条数
	 * @author jzw
	 * @since 2021/11/17 14:23
	 */
	int removeRoleByUserId(Long userId);

	/**
	 * 通过角色code查询角色的所有权限
	 *
	 * @param code 角色code
	 * @return 权限code
	 * @author jzw
	 * @since 2021/11/17 17:12
	 */
	List<String> permissionCodeByRoleCode(String code);

	/**
	 * 通过角色id查询角色所有权限
	 *
	 * @param id 角色id
	 * @return 所有数据
	 * @author jzw
	 * @since 2021-11-17 11:33:20
	 */
	List<Long> queryPermissionsByRoleId(Long id);


}

